package cn.edu.ujn.lab3.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import cn.edu.ujn.lab3.dao.BaseDict;
import cn.edu.ujn.lab3.dao.Customer;
import cn.edu.ujn.lab3.dao.CustomerQueryVo;
import cn.edu.ujn.lab3.dao.DictQueryVo;
import cn.edu.ujn.lab3.service.IBaseDictService;
import cn.edu.ujn.lab3.service.ICustomerService;
import cn.edu.ujn.lab3.util.Page;

@Controller
@RequestMapping(value = "/dict")
public class DictController {
		// 注入IBaseDictService
		@Autowired
		private IBaseDictService baseDictService;
		// 注入ICustomerService
		@Autowired
		private ICustomerService customerService;

		/**
		 * 字典管理页面
		 */
		@RequestMapping(value = "/list.action")
		public String findAllCustomer(DictQueryVo vo,Model model) {

			// 默认当前页为1
			if (vo.getPage() == null) {
				vo.setPage(1);
			}
			// 设置查询的起始记录条数
			vo.setStart((vo.getPage() - 1) * vo.getSize());

			// 查询数据列表和数据总数
			List<BaseDict> resultList = baseDictService.findDictByVo(vo);
			Integer count = baseDictService.findDictByVoCount(vo);
			// page是dao中的类，将查询结果封装到该类中
			Page<BaseDict> page = new Page<BaseDict>();
			page.setTotal(count); // 数据总数
			page.setSize(vo.getSize());// 每页显示条数
			page.setPage(vo.getPage());// 当前页数
			page.setRows(resultList); // 数据列表
			// 将查询结果返回给页面
			model.addAttribute("page", page); 
			
			// 查询字典种类
				List<BaseDict> dictType = baseDictService.findDictType();
			// 将数据添加到model中 
				model.addAttribute("dictType", dictType);
 
			// QueryVo中封装了custName、custSource、custIndustry、custLevel这几个属性
			// 高级查询选中数据回显
			model.addAttribute("dictTypeName", vo.getDictTypeName());
			model.addAttribute("dictEnable", vo.getDictEnable());
			model.addAttribute("enableChange",baseDictService.createChangeList());

			return "dict";
		}
		@ResponseBody
		@RequestMapping("/getBaseDictById.action")
		public BaseDict getBaseDictById(String dictId) {
			// 通过ID查找用户信息
		
			return baseDictService.getBaseDictById(dictId);
			
		}
		@ResponseBody
		@RequestMapping("/update.action")
		public String updateBaseDict(BaseDict baseDict) {
			//修改字典信息
			
				int number = baseDictService.upBaseDictById(baseDict);
				if (number > 0) {
					// 1修改成功
					return "OK";
				} else 
				{
					// 2修改失败
					return "NO";
				}
			
		}
		@ResponseBody
		@RequestMapping("/change.action")
		public String changeBaseDict(String dictId) {
			 
			
			// 进行状态反转 
			int number = baseDictService.updateEnableByPrimaryKey(dictId);
				if (number > 0) { 
					// 1.修改成功
					return "OK";  
				} else { 
					// 2.修改失败
					return "NO"; 
				}
			
}
		//创建字典  
		@ResponseBody
		@RequestMapping("/create.action")
		public String insert(BaseDict basce.insert(baseDict);
			if (count > 0) {
				return "OK";
			}  
			else {
				return "NO";
			} 
		} 

}
